package com.ideeli.webextractor.dao;

import java.util.List;
import java.util.Map;

import com.ideeli.hwz.domain.HWZProduct;
import com.ideeli.webextractor.domain.Category;
import com.ideeli.webextractor.domain.Manufacturer;
import com.ideeli.webextractor.domain.Product;
import com.ideeli.webextractor.domain.Eb;

public interface ProductDao {
	
	public void insertProduct(Product product) throws Exception;
	
//	public void findAllProducts() throws Exception;
	
	public void insertCategory(Category category) throws Exception;
	
	public void insertProdToCat(int product_id, int category_id) throws Exception;

	public void insertManufacturer(Manufacturer manufacturer) throws Exception;
	
	public int insertSupplier(String name) throws Exception;
	
	public int findCategoryIdByName(String Name) throws Exception;
	
	public int findManufacturerByName(String name) throws Exception;
	
	public int findSupplierByName(String name) throws Exception;
	
	public void insertParsedProduct(String sku, String vpn,String model, String desc, int prodId) throws Exception ;
	
	public void deleteProduct(List<Integer> prodIds) throws Exception;
	
	public void correctBannerImagePath() throws Exception;
	
	public Map<String,Integer> loadAllSkuVpn(String tblName) throws Exception;
	
	public List<Product> loadProuctsPrice (String sql) throws Exception;
	
	public List<Product> findAllOrderedProducts() throws Exception;
	
	public void markInactiveOutofStock(List<Integer> prods) throws Exception;
	
	public void updatePrice(int pId, float showPrice, float percent,float base_price) throws Exception;

	public void trimNameChangeAll() throws Exception;
	
	public List<String> getImageNamesDB() throws Exception;

	public Map<String, List<String>> getCategoryProdsWithImages(int maxP);
	
	public List<HWZProduct> getHWZProducts(String inClause) throws Exception;

	public List<Product> getEbayProducts(String whereClause);

	public List<Eb> getEbEligEntries();
	
	public List<Product> getAllProducts();

	public List<Long> getActiveProdIds();

	Map<String, List<String>> getCategoryProdsForFeaturedList();
	
	public void updateFeaturedProdList(String prodclause) throws Exception;
//	public Map<String, Integer> loadCategories() throws Exception;
}
